package es.decloud.service.impl;

import java.util.List;

import javax.jws.WebService;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import es.decloud.dao.AulaDao;
import es.decloud.model.Aula;
import es.decloud.service.AulaManager;
import es.decloud.service.AulaService;

/**
 * Implementation of AulaManager interface.
 * 
 * @author <a href="mailto:dtercero@gmail.com">David Tercero</a>
 */
@Service("aulaManager")
@WebService(serviceName = "AulaService", endpointInterface = "es.decloud.service.AulaService")
public class AulaManagerImpl extends GenericManagerImpl<Aula, Long> implements AulaManager, AulaService {
	AulaDao aulaDao;

	@Autowired
	public AulaManagerImpl(AulaDao aulaDao) {
		super(aulaDao);
		this.aulaDao = aulaDao;
	}

	/**
	 * Obtiene el listado de las aulas de un centro
	 */
	@Override
	public List<Aula> getAulas(String idCentro) {
		return aulaDao.getAulas(new Long(idCentro));
	}

	/**
	 * Obtiene el aula de un centro por su nombre
	 */
	@Override
	public Aula getAulaByNombre(Long idCentro, String nombre) {
		return aulaDao.getAulaByNombre(idCentro, nombre);
	}

	/**
	 * Obtiene el aula por su id en formato String
	 */
	@Override
	public Aula getAula(final String aulaId) {
		return aulaDao.get(new Long(aulaId));
	}

	/**
	 * Guarda los datos de un aula en base de datos
	 */
	@Override
	public Aula saveAula(Aula aula) {
		return dao.save(aula);
	}

	/**
	 * elimina un aula de base de datos
	 */
	@Override
	public void removeAula(Long idAula) {
		dao.remove(idAula);
	}
}